package com.scut.filedownloader.core.recorder;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;

import androidx.annotation.NonNull;

import com.scut.filedownloader.FileDownloader;

/**
 * 记录器工厂类, 用于获取关于下载的记录，以及下载的记录信息
 * 该类通过FileDownloader全局类获取，由全局类代为创建
 */
public class RecorderFactory {

    private Context context;

    public RecorderFactory(Context context){
        this.context=context;
    }

    /**
     * 获取一个可以用于查找下载项的记录器，该记录器用于持久化记录已经提交的下载记录的条目。
     */
    public DownloadEntryRecorder getDownloadEntryRecorder(){
        final SharedPreferences sharedPreferences= context.getSharedPreferences(FileDownloader.getInstance().downloadEntryRecordName, Context.MODE_PRIVATE);
        DownloadEntryRecorder entryRecorder=new DownloadEntryRecorder(sharedPreferences);
        return entryRecorder;
    }

    /**
     * 根据给定任务id 创建对应记录器对象。
     * @param id
     * @return 某条下载记录的监视器对象
     */
    public DownloadRecorder getDownloadRecorder(final int id){
        String prefix=FileDownloader.getInstance().downloadRecordName.intern();
        DownloadRecorder recorder=new DownloadRecorder(context.getSharedPreferences(prefix+id,Context.MODE_PRIVATE));
        return recorder;
    }

}
